﻿using System;
using AzukiMap.MapSource;
using System.Windows.Controls;
using Geotools.Geometries;
using System.Windows;
using AzukiMap.Map;
using System.Xml.Linq;
using System.Windows.Media.Imaging;
namespace AzukiMap.Layer
{
    public interface ILayer
    {
        bool Readable { get; set; }
        bool Writable { get; set; }
        bool IsRendering { get; }
        MapCanvas MapCanvas { get; }
        MapSourceTypes Type { get; }
        GTPolygon MaxExtent { get; set; }
        string Name { get; set; }
        int ZIndex { get; set; }
        double MaxScale { get; set; }
        double MinScale { get; set; }
        bool IsVisible { get; }
        string IconSrc { set; get; }
        Visibility Visiblity { get; set; }
        double Opacity { get; set; }
        BitmapImage DataTypeIcon { get; set; }

        void Draw();
        void Clear();
        void Show();
        void Hide();

        XElement ToXml();
        void Parse(XElement xmlElement);
    }
}
